Micron Document
____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|


The NomadNet German Wikipedia | Archives | Info
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b

πŸ” Search

Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―

OpenGL ES Shading Language
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Die OpenGL ES Shading Language (kurz: GLSL ES) ist eine Programmiersprache, mit der programmierbare Einheiten eines Grafikprozessors, sogenannte Shader, erstellt werden. Diese Shader werden kompiliert, miteinander zu einem fertigen Programm verbunden und mittels OpenGL ES auf eingebetteten Systemen ausgefΓΌhrt.

Contents

β€’ Beispiel
β€’ Vertex-Shader
β€’ Weblinks

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Sprachmerkmale

GLSL ES basiert auf der OpenGL Shading Language (GLSL) und ist als solches auch eine C-Γ€hnliche Programmiersprache. Im Gegensatz zu GLSL gibt es in der aktuellen Version von GLSL ES weniger Texture-Datentypen (Sampler) und bietet wesentlich weniger eingebaute Variablen und Funktionen an. DarΓΌber hinaus kann allerdings mittels Precision-Qualifier die minimale Reichweite und Genauigkeit eines Gleitkomma- oder Ganzzahl-Datentyps bestimmt werden.

Beispiel

Ein Beispiel eines einfachen GLSL-ES-Programms aus einem Vertex- und einem Fragment-Shader; das Programm zeichnet Objekte in einer zuvor definierten Farbe:

Vertex-Shader

Dieser Vertex-Shader positioniert den Vertex (a_vertex) mithilfe der Matrix modelViewProjectionMatrix relativ zur Kamera im Raum und ΓΌbergibt die von der OpenGL ES-API ΓΌbergebene Farbe (a_color) weiter an den Fragment-Shader.

uniform mat4 modelViewProjectionMatrix;
attribute vec4 a_vertex;
attribute vec4 a_color;
varying vec4 v_color;
void main()
{
v_color = a_color;
gl_Position = modelViewProjectionMatrix * a_vertex;
}

Dasselbe Beispiel in Version 3.00:

#version 300 es
uniform mat4 modelViewProjectionMatrix;
layout (location = 0) in vec4 a_vertex;
layout (location = 1) in vec4 a_color;
out vec4 v_color;
void main()
{
v_color = a_color;
gl_Position = modelViewProjectionMatrix * a_vertex;
}

Fragment-Shader

Dieser Fragment-Shader setzt die Zeichenfarbe des Fragments auf die vom Vertex-Shader ΓΌbergebene Farbe.

precision mediump float;
varying vec4 v_color;
void main()
{
gl_FragColor = v_color;
}

Dasselbe Beispiel in Version 3.00

#version 300 es
precision mediump float;
in vec4 v_color;
out vec4 my_fragcolor;
void main()
{
my_fragcolor = v_color;
}

Versionsgeschichte

| Version | VerΓΆffentlichung | Beschreibung / Γ„nderungen |
|---|---|---|
| Γ„ltere Version; nicht mehr unterstΓΌtzt: 1.00 | 12. Mai 2009 | OpenGL ES 2.0 erste VerΓΆffentlichung |
| Γ„ltere Version; nicht mehr unterstΓΌtzt: 3.00 | 11. Juli 2012 | OpenGL ES 3.0 Mehrfachauswahl Nichtquadratische Matrizen Schwerpunkts-basierte Interpolation und Nicht-Interpolation zwischen Vertex- und Fragment-Shader Matrix-Funktionen Derivativ-Funktionen Ganzzahlige Textur-Datentypen Vorzeichenlose Ganzzahl-, Vektor- und Textur-Datentypen hyperbolische Winkel-Funktionen abscheiden und runden von Gleitkommazahlen Format-Layout fΓΌr Variablen-Deklaration Konvertierung zwischen Ganzzahlen und Gleitkommazahlen mit Beibehaltung der Bit-Level-Darstellung Packen und Entpacken von Zahlen |
| Γ„ltere Version; nicht mehr unterstΓΌtzt: 3.10 | 17. MΓ€rz 2014 | OpenGL ES 3.1 Compute-Shader Shader-Speicherpuffer-Objekte Arrays von Arrays Atomic-Counter Images Separate Programm-Objekte (auch bekannt als separate Shader-Objekte) Explizite Uniform-Locations Texture-Gather Bitfield-Operationen Integer-Mix-Funktionen |
| Aktuelle Version: 3.20 | 6. August 2015 | OpenGL ES 3.2 Geometry-Shader Tessellation-Control-Shader Tessellation-Evaluation-Shader |

Weblinks

β€’ GLSL-ES-Specification Version 1.00 (12. Mai 2009). (PDF; 619 kB)
β€’ GLSL-ES-Specification Version 3.00 (6. MΓ€rz 2013). (PDF; 750 kB)
β€’ GLSL-ES-Specification Version 3.10 (17. MΓ€rz 2014). (PDF; 891 kB)
β€’ GLSL-ES-Specification Version 3.20 (6. August 2015). (PDF; 1,16 MB)